package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**本类用于测试list接口*/
public class TestList {
    public static void main(String[] args) {
        List<String> list = new ArrayList();
        //测试继承自Collection中的方法
        list.add("大力娃");
        list.add("千顺娃");
        list.add("头铁娃");
        list.add("喷火娃");
        list.add("吐水娃");
        list.add("隐身娃");
        list.add("小紫娃");
        System.out.println(list);

//        list.clear();
        System.out.println(list.contains("小紫娃"));//true,判断集合是否包含指定元素
        System.out.println(list.isEmpty());//false,判断集合是否为空
        System.out.println(list.remove("小紫娃"));//移除集合中指定的元素
        System.out.println(list.size());//获取集合中元素的个数
        System.out.println(Arrays.toString(list.toArray()));//转数组并打印

        List<String> list2 = new ArrayList();
        list2.add("1");
        list2.add("2");
        list2.add("3");
        list2.add("4");
        System.out.println(list2);//查看集合中的元素

        list.addAll(list2);//将2集合的所有元素添加到list集合中
        System.out.println(list);

        System.out.println(list.containsAll(list2));//判断list集合中是否包含list2集合中的所有元素

        list.removeAll(list2);//移除list集合中属于list2集合中的所有元素
        System.out.println(list);

        list2.retainAll(list);//取交集
        System.out.println(list);
        System.out.println(list2);//谁调用，影响谁

        //测试List集合独有方法
        /**List接口是由下标的、有序的、可以存放重复元素的集合*/
        list.add("小蝴蝶");
        list.add(1,"小蝴蝶");
        list.add(3,"小蝴蝶");
        System.out.println(list);

        System.out.println(list.indexOf("小蝴蝶"));//判断元素第一次出现的索引
        System.out.println(list.lastIndexOf("小蝴蝶"));//判断元素最后一次出现的索引
        System.out.println(list.remove(5));//根据下标删除元素，并把被删除的元素返回
        System.out.println(list);
        System.out.println(list.get(3));//根据索引获取对应的元素
        System.out.println(list.set(7,"蝎子精"));//根据索引获取对应元素
        System.out.println(list);


        list2.add("1");
        list2.add("2");
        list2.add("3");
        list.addAll(list2);//将2集合的所有元素添加到list集合中
        list.addAll(1,list2); //将2集合的所有元素添加到list集合的指定位置
        System.out.println(list);
    }
}
